package com.newly.driver.sdk.device.video.cloud.device.tencent;

import cn.hutool.core.annotation.Alias;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * @author gjm guan
 * @date 2021/10/21 17:28
 * @desc 腾讯云查询设备通道响应参数
 * TotalCount	Integer	通道总数,注意：此字段可能返回 null，表示取不到有效值。
 * DeviceList	Array of GroupDeviceItem	通道详情列表,注意：此字段可能返回 null，表示取不到有效值。
 * RequestId	String	唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
 * <p>
 * DeviceList:
 * <p>
 * DeviceId	String	是	设备唯一标识，注意：此字段可能返回 null，表示取不到有效值。
 * NickName	String	否	设备名称，注意：此字段可能返回 null，表示取不到有效值。
 * Status	Integer	否	设备状态，注意：此字段可能返回 null，表示取不到有效值。
 * ExtraInformation	String	否	扩展信息，注意：此字段可能返回 null，表示取不到有效值。
 * DeviceType	Integer	否	设备类型，注意：此字段可能返回 null，表示取不到有效值。
 * RTSPUrl	String	否	rtsp地址，注意：此字段可能返回 null，表示取不到有效值。
 * DeviceCode	String	否	设备编码，注意：此字段可能返回 null，表示取不到有效值。
 * IsRecord	Integer	否	是否存在录像，注意：此字段可能返回 null，表示取不到有效值。
 * Recordable	Integer	否	该设备是否可录制，注意：此字段可能返回 null，表示取不到有效值。
 * Protocol	String	否	设备接入协议，注意：此字段可能返回 null，表示取不到有效值。
 */
@Data
public class TXQueryChannelResp {
    /**
     * 通道总数
     */
    @ApiModelProperty("通道总数")
    @Alias("TotalCount")
    private Long totalCount;

    /**
     * 通道详情列表
     */
    @ApiModelProperty("通道详情列表")
    @Alias("DeviceList")
    private List<PayLoad> payLoads;

    /**
     * 唯一请求 ID
     */
    @ApiModelProperty("唯一请求 ID")
    @Alias("RequestId")
    private String requestId;

    /**
     * 通道详情列表
     */
    @Data
    public static class PayLoad {
        /**
         * 设备id
         */
        @ApiModelProperty("设备id")
        @Alias("DeviceId")
        private String deviceId;

        /**
         * 设备名称
         */
        @ApiModelProperty("设备名称")
        @Alias("NickName")
        private String deviceName;

        /**
         * 设备状态
         */
        @ApiModelProperty("设备状态")
        @Alias("Status")
        private Long status;

        /**
         * 扩展信息
         */
        @ApiModelProperty("扩展信息")
        @Alias("ExtraInformation")
        private String extraInformation;

        /**
         * rtsp地址
         */
        @ApiModelProperty("rtsp地址")
        @Alias("DeviceType")
        private Long deviceType;

        /**
         * 设备名称
         */
        @ApiModelProperty("设备名称")
        @Alias("RTSPUrl")
        private String rtspUrl;

        /**
         * 国标id,设备编码
         */
        @ApiModelProperty("国标id,设备编码")
        @Alias("DeviceCode")
        private String gbId;

        /**
         * 是否存在录像
         */
        @ApiModelProperty("是否存在录像")
        @Alias("IsRecord")
        private Long isRecord;

        /**
         * 该设备是否可录制
         */
        @ApiModelProperty("该设备是否可录制")
        @Alias("Recordable")
        private Long recordable;

        /**
         * 设备接入协议
         */
        @ApiModelProperty("设备接入协议")
        @Alias("Protocol")
        private String protocol;
    }
}
